package com.future.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.future.domain.vo.ArticleTagVO;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface ArticleTagMapper extends BaseMapper<ArticleTagVO> {
    /**
     * 通过文章ID查询所有关联的标签ID
     */
    List<ArticleTagVO> selectTagsByArticleId(@Param("articleId") Long articleId);

    /**
     * 批量查询文章-标签关联关系（每篇文章最多3个标签）
     */
    List<ArticleTagVO> selectArticleTagIdsByArticleIds(@Param("articleIds") List<Long> articleIds);

    /**
     * 插入文章-标签关联关系
     */
    @Insert("INSERT INTO article_tag (article_id, tag_id) VALUES (#{articleId}, #{tagId})")
    int insertArticleTag(@Param("articleId") Long articleId, @Param("tagId") Long tagId);
    /**
     * 批量插入文章-标签关联关系
     */
    @Insert("<script>" +
            "INSERT INTO article_tag (article_id, tag_id) VALUES " +
            "<foreach collection='list' item='item' separator=','>" +
            "(#{item.articleId}, #{item.tagId})" +
            "</foreach>" +
            "</script>")
    void batchInsertArticleTags(@Param("list") List<ArticleTagVO> articleTagList);

}